perm filename REQUIR.6[AID,LSP]1 blob sn#415280 filedate 1979-01-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(defun require fexpr (file)
C00004 ENDMK
C⊗;
;(defun require fexpr (file)
; ((lambda (f eof)
;   (do ((form (read f eof)
;	      (read f eof)))
;       ((eq form eof) f)
;       (eval form)))
;  (apply 'include (ncons (defaultf file))) (ncons nil)))

(declare (*expr eload))
(macrodef push (x) (setq pdl (cons x pdl)))
(macrodef pop () (setq file (cdr file)))
(macrodef check () (cond ((null file)(throw (nreverse pdl) out))))
(macrodef default (file)
(cond (file
 (catch (prog (pdl)
	 (push (car file))
	 (pop)
	 (push (cond ((or (null file)
			  (memq (car file) '(dsk sys))
		   	  (not (atom (car file)))) '|←←←|) 
		     (t (prog2 nil (car file) (pop)))))
	 (check)
	 (push (cond ((atom (car file)) (prog2 nil (car file)(pop)))
		     (t 'dsk)))
	 (check)
	 (push (cond ((= (length (car file)) 2)(car file))
		     (t (list (caar file)(cadr (status udir))))))
	 (throw (nreverse pdl) out))
  out))))

(defun require fexpr (file)
       ((lambda (cr)
		(eload (ugreat1 (defaultf (default file)))) 
		(apply 'crunit cr))
	(status crunit)))